'''
Created on 29/09/2014

'''
from Sodev.blockHDD import BlockHDD
class Program:
  
    def __init__(self, nombre):
        self.insts = []
        self.bloquesHDD = []
        self.nombre = nombre
        self.cantInstr = 0

    def printProgram(self):
        lista = []
        for i in self.insts:
            lista.append(i.getInt())
        return lista
    
    '''carga en buffer las instrucciones'''
    def addInstr(self, instruction):
        self.insts.append(instruction)
        self.cantInstr = self.cantInstr + 1
    
    #Inutil, queda como Legacy, ahora lo hace el FileSystem, cuando se integre todo
    #y este todo debidamente Testeado, se debe borrar.
    def install(self):
        bloquehdd = BlockHDD()
        for inst in self.insts:
            if(bloquehdd.size()<2):
                bloquehdd.setInstr(inst)
            else:
                self.bloquesHDD.append(bloquehdd)
                bloquehdd = BlockHDD()
        self.bloquesHDD.append(bloquehdd)
    
    def getInstr(self):
        return self.insts

    def getNombre(self):
        return self.nombre
    
    def getBloques(self):
        return self.bloquesHDD
    
    def size(self):
        return self.cantInstr
    
    